package fr.auzaiphe.commun.reseau;

import java.net.InetAddress;
import java.util.ArrayList;

import javax.swing.JOptionPane;

import fr.auzaiphe.joueur.model.IndiceJoueur;
import fr.auzaiphe.joueur.model.JoueurModel;

/**
 * Paquet de réponse de la demande de connexion du client
 * devra contenir la liste des indices consultables par le client
 * @author Jojo
 *
 */
public class PacketAnswerConnexion extends Packet
{
	private int tempsRestant;
	private String nom;
	private String prenom;
	private String password;
	private ArrayList<IndiceJoueur> indicesDispos;
	private boolean result;

	/**
	 *
	 * @param pResult
	 * @param pTempsRestant
	 * @param pNom
	 * @param pPrenom
	 * @param pPassword
	 * @param pIndicesDispos
	 * @param pDestination
	 */
	public PacketAnswerConnexion(boolean pResult, int pTempsRestant, String pNom, String pPrenom, String pPassword, ArrayList<IndiceJoueur> pIndicesDispos, InetAddress pDestination)
	{
		this.result = pResult;

		this.tempsRestant = pTempsRestant;
		this.nom = pNom;
		this.prenom = pPrenom;
		this.password = pPassword;
		this.indicesDispos = new ArrayList<IndiceJoueur>( pIndicesDispos );

		this.destination = pDestination;
	}

	/**
	 * Packet de connexion vers l'admin
	 * @param pUserName
	 * @param pPassword
	 */
	public PacketAnswerConnexion(boolean pResult, int pTempsRestant, InetAddress pDestination)
	{
		this.result = pResult;
		this.tempsRestant = pTempsRestant;
		this.destination = pDestination;
	}

	/**
	 * Action à faire lors de la reception du
	 * packet, on envoie une requete sur BDD
	 * Et on avise
	 */
	@Override
	public void action()
	{
		System.out.println("Paquet answer connexion reçu");
		if(this.tempsRestant > 0 && this.result)
			((JoueurModel)this.model).connecter( this.tempsRestant, this.nom, this.prenom, this.password, this.indicesDispos );
		else if (!this.result)
			JOptionPane.showMessageDialog(null, "Erreur lors de l'authentification, votre identifiant et/ou votre mot de passe ne sont pas corrects.\nL'identifiant doit être votre nom de joueur" ,"Erreur", JOptionPane.ERROR_MESSAGE);
		else
			JOptionPane.showMessageDialog(null, "Vous n'avez plus de temps disponible.", "Erreur", JOptionPane.ERROR_MESSAGE);
	}
}